var SLASHED_URL_SPLIT_LENGTH = 4; var EDITOR_SHORTCUT_MENU = 16; function loadScript(document, targetElement, scriptToLoad, addingJquery, pageIn, callback) { //Dont add jquery when the conten page has already one. if (addingJquery && !doAddJquery(document)) { return; } var script = document.createElement("script"); script.type = "text/javascript"; if (callback) { if (script.readyState) { //IE script.onreadystatechange = function () { if (script.readyState == "loaded" || script.readyState == "complete") { script.onreadystatechange = null; callback(); } }; } else { //Others script.onload = function () { callback(); }; } } script.src = scriptToLoad; targetElement.appendChild(script); if (pageIn) { setTimeout(script.onload = function () { }, 3000); } } //Todo: needs either optimization or different loading technique.. function doAddJquery(document) { var scripts = document.getElementsByTagName('script'); for (var i = 0; i < scripts.length; i++) { if (scripts[i].src) { if (scripts[i].src.toLowerCase().indexOf('jquery.js') > 0) { return false; } } } return true; } function blockNavigation(block) { if (block) { $("#menuPage").addClass("block-div"); } else { $("#menuPage").removeClass("block-div"); } let none = block ? 'none' : ''; let menuState = block ? 'disable' : 'enable'; $("#navMenu").menu(menuState); $('#navMenu').find('a').each(function (e) { $(this).css('pointer-events', none); }); $("#brandingLink").css('pointer-events', none); //logimage $("#userNameSpan").css('pointer-events', none); //user name popup $("#announcementDiv").css('pointer-events', none); //announcement click $('#simpleSearchLinkButton').prop('disabled', block); $('#simpleSearchString').prop('disabled', block); //search textbox $("#RoleDropdown").prop('disabled', block); //role dropdown $("#ddlLanguages").prop('disabled', block); //language dropdown $("#UpdateMyInformation").css('pointer-events', none); //update information link $("#logoutLink").css('pointer-events', none);//logout information link $("#Login").css('pointer-events', none);//login link $("#Register").css('pointer-events', none);//Register link $("#hamBurger").css('pointer-events', none);//hamburger link for responsive view $("#userIcon").css('pointer-events', none);//User link for responsive view } var currentRole; var LoggedInuserFandLName; function reBindNavigation(thisRole, thisUserFLname) { currentRole = thisRole; LoggedInuserFandLName = thisUserFLname; $.ajax({ url: 'DataHandlers/DynamicNavBarHandler.ashx', method: 'get', dataType: 'json', success: successPatchHandler, }); } function successPatchHandler(data) { patchUserInfo(); patchEditorShortcutNavMenu(data) patchUserRole(data); patchProxyBanner(data); } function patchUserInfo() { // EDM-13033 NK 20211020 - Assigned logged in user;s full name as html as it sent as ecoded value. $('#lblUserFirstAndLastName').html(LoggedInuserFandLName); } function patchEditorShortcutNavMenu(data) { if (parseInt($('#authorizedCount').val()) !== data.AuthorizedShortcutMenuCount) { $('#' + EDITOR_SHORTCUT_MENU).remove(); buildMenu($('#navMenu'), data.ShortcutMenu, true); initDropdownMenu(); $("#journalName").trigger("click"); $('#authorizedCount').val(data.AuthorizedShortcutMenuCount); } } function patchUserRole(data) { if ($('#RoleDropdown > option').length !== data.userRoles.length) { var list = $("#RoleDropdown"); $("#RoleDropdown option").each(function () { $(this).remove(); }); $.each(data.userRoles, function (index, item) { list.append(new Option(item.RoleName, item.FamilyName)); }); $('#RoleDropdown option[value="' + currentRole + '"]').attr("selected", "selected"); } } function patchProxyBanner(data) { var proxyFrame = $('#proxy'); if (proxyFrame) { if (data.ProxyBanner.Message !== '') { proxyFrame.css('display', 'block'); $('#ProxyFor').text(data.ProxyBanner.Message); } else { proxyFrame.css('display', 'none'); } } } function buildMenu(parent, items, rootMenu) { $.each(items, function () { let li = buildListAndAnchor(this, rootMenu) li.appendTo(parent); if (this.SubMenus && this.SubMenus.length > 0) { let ul = $("
"); ul.appendTo(li); buildMenu(ul, this.SubMenus, false); } }); } function filterMenuById(menus, id) { return menus.filter(function (e) { return e.Id === id; })[0]; } function buildListAndAnchor(menu, rootMenu) { let style = " class='" + (rootMenu ? 'root-menu' : '') + ' ui-menu-item' + (menu.HasSubMenu ? "'>" : "'>"); let element = "